package com.forester.foresterplatform.system.annotation;

import com.forester.foresterplatform.system.enums.SystemLoggingLevel;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 用在 Controller 的方法上, 表示该方法需要记录日志, 日志内容为方法名称, 方法的参数和返回值
 */
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD})
public @interface SystemLogging {

    // 日志级别枚举
    SystemLoggingLevel level() default SystemLoggingLevel.INFO;

    // 是否输出参数
    boolean logParams() default true;

    // 是否输出返回值
    boolean logResult() default true;

    // 是否输出异常
    boolean logException() default true;
}
